NodeJS variable
JS 是动态语言, 变量可以随意变换类型
JS 使用 let
, var
, const
声明变量
变量声明
let a = "hello";
var b = " ";
const c = "world!";
var b;
console.log(a + b + c)
> hello world!
var
: 声明全局变量, 可以重复声明, 重复声明不赋值会继承上一个值let
: 声明区域变量, 不可重复声明const
: 声明常量, 值不可变, 声明时必须赋值, 不可重复声明
// var 存在变量提升, 变量在声明前使用为 undefined
console.log(a);
var a = "hello";
> undefined
// var 声明的是全局变量
for(var i=0; i < 5; i++) {
break
}
// let 声明的变量只在一定范围内生效
for(let x=0; x < 5; x++) {
break
}
console.log(`index i: ${i}`);
try {
console.log(`index x: ${x}`);
} catch (error) {
console.log(error);
}
> index i: 0
> ReferenceError: x is not defined
注: 为避免 var
变量提升和全局声明, 推荐使用 let
const MAX;
> SyntaxError: Missing initializer in const declaration
// 声明常量, 且需要赋值
const MAX = 100;
MAX = 200;
> TypeError: Assignment to constant variable.
特殊全局变量
// 代码所在文件的绝对路径
console.log(__dirname);
console.log(__filename);
// process 对象, 进程信息
console.log(process.argv); // Array 执行脚本命令及参数
console.log(process.pid); // number 进程 pid
console.log(process.platform); // string 执行平台
console.log(process.uptime()); // number 执行时长
console.log(process.cwd()); // string 入口文件路径
console.log(process.env); // Object shell 下的环境变量(linux env 命令)